package com.ym.medical.service;


import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ym.core.utils.tkmybatis.IBaseSV;
import com.ym.medical.domain.entity.PatientDetailEntity;
import com.ym.medical.domain.param.AddressListParam;
import com.ym.medical.domain.param.CommentRecordParam;
import com.ym.medical.domain.param.PatientDetailParam;
import com.ym.medical.domain.vo.PCMyDoctorVo;
import com.ym.medical.domain.vo.PatientAccountVo;
import com.ym.medical.domain.vo.PatientVo;

import java.util.List;

/**
 * @author dai
 * @create 2019-05-06 13:03
 **/
public interface IPatientSV extends IBaseSV<PatientDetailEntity> {

    /**
     * 评价医生
     * @param model
     * @return
     */
    boolean insertEvalDoctor(CommentRecordParam model);

    /**
     * 添加关注 成为医生的粉丝
     *
     * @param patientId
     * @param doctorId
     * @return
     */
    Long addAttention(Long patientId, long doctorId);

    /**
     * 取消关注
     * @param id
     * @return
     */
    int cancelAttention(long id);
    /**
     * 患者详情列表
     * @param pageNo 页码
     * @param limit 每页数量
     * @param patientDetailModel 扩展对象信息
     * @return
     */
    PageInfo<PatientVo> getPatientList(int pageNo, int limit, PatientDetailParam patientDetailModel);
    /**
     * 患者账户列表
     * @param pageNo
     * @param limit
     * @param phoneNo
     * @param realName
     * @return
     */
    PageInfo<PatientAccountVo> getAccountList(int pageNo, int limit, String phoneNo, String realName);

    /***
     * 我的家人
     * @param pageNo
     * @param limit
     * @param patientDetailModel
     * @return
     */
    PageInfo<PatientDetailEntity> getFamily(int pageNo, int limit, PatientDetailParam patientDetailModel);
    /**
     *
     * @param pageNo
     * @param limit
     * @param userId 用户id
     * @return
     */
    PageInfo<PCMyDoctorVo> getPatientDoctor(int pageNo, int limit, Long userId);
    /***
     * 关注商品数量
     * @param userId
     * @return
     */
    int selectTopicTotal(Long userId);

    /***
     * 关注文章数量
     * @param userId
     * @return
     */
    int selectArticleTotal(Long userId);
    /***
     * 我的关注医生列表
     * @param addressListModel
     * @param userId
     * @return
     */
    PageInfo<PCMyDoctorVo> getFocusCollection(int pageNo, int limit, AddressListParam listModel, Long userId);
    /**
     * 家人新增
     * @param patientDetail
     * @return
     */
    int addPatient(PatientDetailEntity patientDetail);
    /**
     * 家人信息更改
     * @param patientDetail
     * @return
     */
    int upPatient(PatientDetailEntity patientDetail);
}
